5.1
部署项目
学习目标:
了解
网站架构演变流程
了解
网站架构部署原则
5.1.1
架构演变
这一节的目的就是让大家来了解一下,互联网的软件项目架构一般的发展过程。
项目的架构
一般来说,任何一个项目至少有三层内容来组成:
web
访问层、数据库层、存储层
初级阶段
单体阶段
常见场景:项目初期
部署特点:所有应用服务都在一台主机
应用特点:开发简单
应用
/
数据分离阶段
常见场景:项目初期,用户访问数据库有压力
部署特点:应用和数据库单独部署
应用特点:开发简单
页面动静分离阶段
常见场景:项目初期,用户访问页面有压力
部署特点:剥离用户读请求和写请求操作
应用特点:开发简单
页面
/
数据缓存阶段
常见场景:项目初期,用户访问有压力
部署特点:代理和数据库前面增加缓存组件
应用特点:开发简单
中期阶段
应用服务集群阶段
常见场景:项目初期,用户访问有压力
部署特点:应用服务所在主机做集群负载均衡
应用特点:业务中等
数据库读写分离化
常见场景:项目初期,用户访问数据有压力
部署特点:对数据库集群做读写分离,静态文件做共享存储
应用特点:业务中等
存储分布式
常见场景:项目中期,数据存储有压力
部署特点:对数据库分库
/
分表扩展,数据文件使用分布式存储
应用特点:业务中等
业务应用拆分
常见场景:项目中期,业务访问
/
团队管理有压力
部署特点:项目应用进行拆分
应用特点:业务复杂
中后期阶段
业务拆分
常见场景:项目中后期,业务处理有压力
部署特点:所有功能以服务形式单独部署,引入配置管理管理中心、消息中间件,搜索引擎等功能
应用特点:业务复杂
微服务阶段
常见场景:项目后期,精益求精
部署特点:所有服务都可以自由部署
应用特点:业务复杂
5.1.2
架构部署
通用架构
一级定位:核心组成部分
web
、数据库、存储层
二级定位:功能增强部分
web
缓存、代理、数据库缓存
部署项目
部署项目的时候,要遵循主次原则:
对于架构层中的一级角色,我们的部署原则是:
站在用户访问资源角度,从后向前依次部署。
对于架构层中的二级角色,我们的部署原则是:
站在用户访问资源压力角度,需要部署哪里,就部署哪里,注意前后的信息交流。